#ifndef NAVIGATION_STATE_CODE
#define NAVIGATION_STATE_CODE

// 定义任务执行过程返回值
#define NAV_STATE_RUNNING "running"
#define NAV_STATE_BLOCKED "blocked"
#define NAV_STATE_PAUSE "pausing"
#define NAV_STATE_RECOVERY "recovery"
#define NAV_STATE_REACHED "reached"
#define NAV_STATE_ERROR "error"

// 定义导航任务指令字
#define NAV_CMD_NAV_TO "nav_to"
#define NAV_CMD_MOVE "move"
#define NAV_CMD_PAUSE "pause"
#define NAV_CMD_CONTINUE "continue"
#define NAV_CMD_CANCEL "cancel"

// 定义灯光
#define NAV_LIGHT_READY 0
#define NAV_LIGHT_ERROR 1
#define NAV_LIGHT_RUNNING 2
#define NAV_LIGHT_WAIT 3

namespace navigation_ns
{
    enum navigation_state
    {
        ready = 0,
        processing = 1,
        running = 2,
        strighting = 3,
        turning = 4,
        pausing = 5,
        blocked = 6,
        strighting_recovery = 7,
        turning_recovery = 8,
        reached = 9,
        reached_last = 10,
        error = 11
    };

    enum block_state
    {
        forward = 0,
        backward = 1,
        left = 2,
        right = 3,
        clear = 4
    };
}

#endif